#include <stdio.h>
#include <stdlib.h>
#include "headers/position.h"
#include "headers/const.h"
#include "headers/verification.h"
#include "headers/grille.h"
#include "headers/affich.h"
#include "headers/ia.h"

int main(int argc, char *argv[])
{
	char grille[LIGNE][COLONNE];
	int colonne, gagne = 0;
	char joueur;
	int grillePleine = 0;
	int modeJeu;
	posia p;
			
	// Menu : jouer à 2 ou contre l'IA
	printf("Pour jouer à 2 joueurs, tapez 1, pour jouer contre l'IA, tapez 2 : ");
	do {
		scanf("%d", &modeJeu);
	}
	while(modeJeu != 1 && modeJeu != 2);

	initGrille(grille); // On met le tableau à 
	affichPlateau(grille);

	if(modeJeu == 2) { // Création de l'arbre pour l'IA
		p = (posia) malloc(sizeof(struct positionia));
		creerArbre(p,0,0);
	}

	do {
		if(joueur == JOUEUR1)
			joueur = JOUEUR2;
		else
			joueur = JOUEUR1;
		
		// L'IA joue
		if(modeJeu == 2 && joueur == JOUEUR2) {
			calculIA(grille, p, 2);
			printf(" APPEL DE CALCUL DE IA \n\n\n");
		}
		else { // Le joueur humain joue
			do {
				printf("\nJoueur %c : ", joueur);
				scanf("%d", &colonne);
			}
			while(placerPion(colonne-1, grille, joueur) == 0);  
		}
		grillePleine++;

		colonne = colonne-1;	
		gagne = verifPuissance4(grille, colonne, PUISSANCEMAX);
		affichPlateau(grille);
		printf(" ********************************************************");
		
	}
	while(!gagne && (grillePleine < (LIGNE*COLONNE)));

	if(gagne)
		printf("\nVictoire pour le joueur %c !\n", joueur);
	else
		printf("Match nul\n");

	return 0;
}
